package com.fzu.normalservice.service;

import com.fzu.commonutil.ImResult;
import com.fzu.commonutil.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzu.commonutil.entity.UserVO;
import com.fzu.commonutil.params.DataResult;
import com.fzu.commonutil.entity.UserVO;
import com.fzu.commonutil.util.PageVO;
import com.fzu.normalservice.param.LoginParam;
import com.fzu.normalservice.param.RegisterParam;
import com.fzu.normalservice.param.WxRegisterParam;
import com.fzu.normalservice.result.ComanyUserResult;
import com.fzu.normalservice.result.LoginResult;
import com.fzu.normalservice.result.WxUserResult;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zyq
 * @since 2023-03-26
 */
public interface UserService extends IService<User> {
    //查询所有
//    public PageVO selectAll(User user,Integer pageNum,Integer pageSize);

    //通过id查询
    public User selectId(int id);

    //通过账号查密码
    public String selectAccount(String account);

    //多条件查询（通过账号role角色查询）
    public List<User> selectByRole(Integer role);

    //增加一个账号
    public String addAccount(User user);

    //修改密码
    public String updatePassword(User user);

    //批量删除
    public void deleteByIds(int id);

    /**
     * 登录
     * @param param
     * @return
     */
    LoginResult login(LoginParam param);

    /**
     * 注册
     * @param param
     */
    Integer register(RegisterParam param);

    /**
     * 获取分页列表
     * @param user
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVO list(User user, Integer pageNum, Integer pageSize);

    void updateUser(User user);

    void deleteUser(Integer id);

    /**
     * 获取用户统计数据
     * @param result
     * @return
     */
    DataResult userData(DataResult result);


    /**
     * 微信用户注册
     * @param param
     * @return
     */
    WxUserResult wxRegister(WxRegisterParam param);

    /**
     * 微信用户登录
     * @param code
     * @return
     */
    WxUserResult wxLogin(String code);
    ImResult<UserVO> token(String userToken);
}
